d14a5de8f747f90d6b400533dbd51d070cde2777,engine/src/test/java/org/camunda/bpm/engine/test/api/runtime/MessageCorrelationByLocalVariablesTest.java,MessageCorrelationByLocalVariablesTest,testReceiveTaskMessageCorrelation,#,34
Before Change
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("vars", Arrays.asList(1, 2, 3));
engineRule.getRuntimeService().startProcessInstanceByKey("Process_1", variables);
//when correlated by local variables
String messageName = TEST_MESSAGE_NAME;
Map<String, Object> correlationKeys = new HashMap<String, Object>();
int correlationKey = 1;
correlationKeys.put("localVar", correlationKey);
correlationKeys.put("constVar", "someValue");
engineRule.getRuntimeService().createMessageCorrelation(messageName)
.localVariablesEqual(correlationKeys).setVariables(
Variables.createVariables()
.putValue("newVar", "newValue"))
.correlateWithResult();
//then exactly one message is correlated = one receive task is passed by, two other continue waiting
After Change
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("vars", Arrays.asList(1, 2, 3));
ProcessInstance processInstance = engineRule.getRuntimeService().startProcessInstanceByKey("Process_1", variables);
//when correlated by local variables
String messageName = TEST_MESSAGE_NAME;
Map<String, Object> correlationKeys = new HashMap<String, Object>();
int correlationKey = 1;
correlationKeys.put("localVar", correlationKey);
correlationKeys.put("constVar", "someValue");
MessageCorrelationResult messageCorrelationResult = engineRule.getRuntimeService().createMessageCorrelation(messageName)
.localVariablesEqual(correlationKeys).setVariables(Variables.createVariables().putValue("newVar", "newValue")).correlateWithResult();
//then one message is correlated, two other continue waiting
checkExecutionMessageCorrelationResult(messageCorrelationResult, processInstance, "MessageReceiver_1");
//uncorrelated executions
List<Execution> uncorrelatedExecutions = engineRule.getRuntimeService().createExecutionQuery().activityId("MessageReceiver_1").list();